{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "79a6d0ab",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['abalone-17_vs_7-8-9-10_无性别.txt', 'abalone-17_vs_7-8-9-10_有性别.txt', 'abalone19_无性别.txt', 'abalone19_有性别.txt', 'ecoli-0_vs_1_libsvm.txt', 'ecoli1_libsvm.txt', 'ecoli2_libsvm.txt', 'ecoli3_libsvm.txt', 'ecoli4_libsvm.txt', 'glass0_libsvm.txt', 'haberman_libsvm.txt', 'iris0_libsvm.txt', 'page-blocks0_libsvm.txt', 'pima_libsvm.txt', 'winequality-red-8_vs_6_libsvm.txt', 'yeast-0-5-6-7-9_vs_4_libsvm.txt', 'yeast-1_vs_7_libsvm.txt', 'yeast-2_vs_4_libsvm.txt', 'yeast3_libsvm.txt', 'yeast4_libsvm.txt']\n",
      "abalone-17_vs_7-8-9-10_无性别.txt\n",
      "Dataset: abalone-17_vs_7-8-9-10_无性别.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               2280\n",
      "1  positive                 58\n",
      "Total samples: 2338\n",
      "Imbalance Ratio (IR): 39.310344827586206\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                720\n",
      "1  negative_c1                729\n",
      "2  negative_c2                462\n",
      "3  negative_c3                369\n",
      "4  positive_c0                 58\n",
      "Total samples: 2338\n",
      "Average number of samples per class: 467.6\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                720\n",
      "1  negative_c1                729\n",
      "2  negative_c2                462\n",
      "3  negative_c3                369\n",
      "4  positive_c0                720\n",
      "Total samples: 3000\n",
      "New average number of samples per class: 288.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9743589743589743\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.975609756097561\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.975609756097561\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.914\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.896\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.911\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9751928288513655\n",
      "Average Accuracy CDSMOTE DB: 0.907\n",
      "abalone-17_vs_7-8-9-10_有性别.txt\n",
      "Dataset: abalone-17_vs_7-8-9-10_有性别.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               2280\n",
      "1  positive                 58\n",
      "Total samples: 2338\n",
      "Imbalance Ratio (IR): 39.310344827586206\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                325\n",
      "1  negative_c1                555\n",
      "2  negative_c2                898\n",
      "3  negative_c3                502\n",
      "4  positive_c0                 58\n",
      "Total samples: 2338\n",
      "Average number of samples per class: 467.6\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                325\n",
      "1  negative_c1                555\n",
      "2  negative_c2                898\n",
      "3  negative_c3                502\n",
      "4  positive_c0                502\n",
      "Total samples: 2782\n",
      "New average number of samples per class: 200.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9743589743589743\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.975609756097561\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.975609756097561\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9051724137931034\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8985976267529665\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8878101402373247\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9751928288513655\n",
      "Average Accuracy CDSMOTE DB: 0.8971933935944648\n",
      "abalone19_无性别.txt\n",
      "Dataset: abalone19_无性别.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               4142\n",
      "1  positive                 32\n",
      "Total samples: 4174\n",
      "Imbalance Ratio (IR): 129.4375\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0               1321\n",
      "1  negative_c1                797\n",
      "2  negative_c2                588\n",
      "3  negative_c3               1436\n",
      "4  positive_c0                 32\n",
      "Total samples: 4174\n",
      "Average number of samples per class: 834.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0               1321\n",
      "1  negative_c1                797\n",
      "2  negative_c2                588\n",
      "3  negative_c3               1436\n",
      "4  positive_c0               1321\n",
      "Total samples: 5463\n",
      "New average number of samples per class: 528.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9920977011494253\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9928109273903667\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9920920201294033\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8434925864909391\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.842394288852279\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.841845140032949\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9923335495563985\n",
      "Average Accuracy CDSMOTE DB: 0.8425773384587223\n",
      "abalone19_有性别.txt\n",
      "Dataset: abalone19_有性别.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               4142\n",
      "1  positive                 32\n",
      "Total samples: 4174\n",
      "Imbalance Ratio (IR): 129.4375\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                709\n",
      "1  negative_c1               1197\n",
      "2  negative_c2               1421\n",
      "3  negative_c3                815\n",
      "4  positive_c0                 32\n",
      "Total samples: 4174\n",
      "Average number of samples per class: 834.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                709\n",
      "1  negative_c1               1197\n",
      "2  negative_c2               1421\n",
      "3  negative_c3                815\n",
      "4  positive_c0               1197\n",
      "Total samples: 5339\n",
      "New average number of samples per class: 478.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9920977011494253\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9928109273903667\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9920920201294033\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8168539325842696\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8359550561797753\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8246205733558178\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9923335495563985\n",
      "Average Accuracy CDSMOTE DB: 0.8258098540399542\n",
      "ecoli-0_vs_1_libsvm.txt\n",
      "Dataset: ecoli-0_vs_1_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                 77\n",
      "1  positive                143\n",
      "Total samples: 220\n",
      "Imbalance Ratio (IR): 1.8571428571428572\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "No clustering performed for class negative.\n",
      "Number of clusters for class positive: 4\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 77\n",
      "1  positive_c0                 38\n",
      "2  positive_c1                 47\n",
      "3  positive_c2                 21\n",
      "4  positive_c3                 37\n",
      "Total samples: 220\n",
      "Average number of samples per class: 44.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9459459459459459\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9863013698630136\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9726027397260274\n",
      "赵凌云 0.953477010317198 0.9548717948717949 0.9762857961053837\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 1.0\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9863013698630136\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9726027397260274\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9682833518449957\n",
      "Average Accuracy CDSMOTE DB: 0.9863013698630136\n",
      "ecoli1_libsvm.txt\n",
      "Dataset: ecoli1_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                259\n",
      "1  positive                 77\n",
      "Total samples: 336\n",
      "Imbalance Ratio (IR): 3.3636363636363638\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 73\n",
      "1  negative_c1                142\n",
      "2  negative_c2                 35\n",
      "3  negative_c3                  9\n",
      "4  positive_c0                 77\n",
      "Total samples: 336\n",
      "Average number of samples per class: 67.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.8660714285714286\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9107142857142857\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9017857142857143\n",
      "赵凌云 0.8315682811464972 0.8388917675926497 0.7588287488908607\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9375\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8928571428571429\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9285714285714286\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.8928571428571429\n",
      "Average Accuracy CDSMOTE DB: 0.9196428571428571\n",
      "ecoli2_libsvm.txt\n",
      "Dataset: ecoli2_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                284\n",
      "1  positive                 52\n",
      "Total samples: 336\n",
      "Imbalance Ratio (IR): 5.461538461538462\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                100\n",
      "1  negative_c1                 22\n",
      "2  negative_c2                152\n",
      "3  negative_c3                 10\n",
      "4  positive_c0                 52\n",
      "Total samples: 336\n",
      "Average number of samples per class: 67.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                100\n",
      "1  negative_c1                 22\n",
      "2  negative_c2                152\n",
      "3  negative_c3                 10\n",
      "4  positive_c0                100\n",
      "Total samples: 384\n",
      "New average number of samples per class: 40.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9017857142857143\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9017857142857143\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.875\n",
      "赵凌云 0.6801735756753314 0.7301095179891043 0.5772463768115942\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9453125\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.953125\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.953125\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.8928571428571429\n",
      "Average Accuracy CDSMOTE DB: 0.9505208333333334\n",
      "ecoli3_libsvm.txt\n",
      "Dataset: ecoli3_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                301\n",
      "1  positive                 35\n",
      "Total samples: 336\n",
      "Imbalance Ratio (IR): 8.6\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                146\n",
      "1  negative_c1                 71\n",
      "2  negative_c2                 75\n",
      "3  negative_c3                  9\n",
      "4  positive_c0                 35\n",
      "Total samples: 336\n",
      "Average number of samples per class: 67.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                146\n",
      "1  negative_c1                 71\n",
      "2  negative_c2                 75\n",
      "3  negative_c3                  9\n",
      "4  positive_c0                 71\n",
      "Total samples: 372\n",
      "New average number of samples per class: 28.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9017857142857143\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.8928571428571429\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.8928571428571429\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9112903225806451\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9435483870967742\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9435483870967742\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.8958333333333334\n",
      "Average Accuracy CDSMOTE DB: 0.9327956989247314\n",
      "ecoli4_libsvm.txt\n",
      "Dataset: ecoli4_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                316\n",
      "1  positive                 20\n",
      "Total samples: 336\n",
      "Imbalance Ratio (IR): 15.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                101\n",
      "1  negative_c1                147\n",
      "2  negative_c2                  9\n",
      "3  negative_c3                 59\n",
      "4  positive_c0                 20\n",
      "Total samples: 336\n",
      "Average number of samples per class: 67.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                101\n",
      "1  negative_c1                147\n",
      "2  negative_c2                  9\n",
      "3  negative_c3                 59\n",
      "4  positive_c0                101\n",
      "Total samples: 417\n",
      "New average number of samples per class: 40.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9732142857142857\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9375\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9375\n",
      "赵凌云 0.23570226039551587 0.5833333333333334 0.2222222222222222\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9928057553956835\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9496402877697842\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9928057553956835\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9494047619047619\n",
      "Average Accuracy CDSMOTE DB: 0.9784172661870504\n",
      "glass0_libsvm.txt\n",
      "Dataset: glass0_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                144\n",
      "1  positive                 70\n",
      "Total samples: 214\n",
      "Imbalance Ratio (IR): 2.057142857142857\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 89\n",
      "1  negative_c1                 21\n",
      "2  negative_c2                  7\n",
      "3  negative_c3                 27\n",
      "4  positive_c0                 70\n",
      "Total samples: 214\n",
      "Average number of samples per class: 42.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.6666666666666666\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.6901408450704225\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.6619718309859155\n",
      "赵凌云 0.1368336915942517 0.5072463768115941 0.053418803418803416\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.6944444444444444\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.6901408450704225\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.7323943661971831\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.6729264475743348\n",
      "Average Accuracy CDSMOTE DB: 0.70565988523735\n",
      "haberman_libsvm.txt\n",
      "Dataset: haberman_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                225\n",
      "1  positive                 81\n",
      "Total samples: 306\n",
      "Imbalance Ratio (IR): 2.7777777777777777\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 67\n",
      "1  negative_c1                 58\n",
      "2  negative_c2                 58\n",
      "3  negative_c3                 42\n",
      "4  positive_c0                 81\n",
      "Total samples: 306\n",
      "Average number of samples per class: 61.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.7352941176470589\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.7352941176470589\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.7352941176470589\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.7254901960784313\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.7352941176470589\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.7156862745098039\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.7352941176470589\n",
      "Average Accuracy CDSMOTE DB: 0.7254901960784315\n",
      "iris0_libsvm.txt\n",
      "Dataset: iris0_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                100\n",
      "1  positive                 50\n",
      "Total samples: 150\n",
      "Imbalance Ratio (IR): 2.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAFzCAYAAACQKhUCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAY10lEQVR4nO3debRlV10n8O+PBGQQyEAZi0CogHFAkBhKGsSmgbS2ihLAiNBIYszqSIvIIEhwIK7GAReiYitCJEjRTRNDkKE1MhgMit0MlRAzEGhCFEhMSKmEBJD513/c8+QZq17dpOq+/erdz2ett945+5x79+/+8e76vn322ae6OwAAjHOb0QUAACw7gQwAYDCBDABgMIEMAGAwgQwAYDCBDABgsINHF7Av7na3u/W2bdtGlwEAsFcXXnjhP3T3lt0dO6AD2bZt27Jz587RZQAA7FVVfXRPx1yyBAAYTCADABhMIAMAGEwgAwAYTCADABhMIAMAGEwgAwAYTCADABhMIAMAGEwgAwAYbGGBrKpeWVXXV9Vlq9oOq6q3V9WHp9+HTu1VVb9TVVdW1SVVddyi6gIA2GgWOUL2qiTfe7O205Oc393HJDl/2k+S70tyzPRzWpLfX2BdAAAbysICWXf/ZZJ/ulnzCUl2TNs7kjxmVfure+bdSQ6pqq2Lqg0AYCM5eJ37O6K7r522r0tyxLR9ZJKPrzrv6qnt2txMVZ2W2ShajjrqqMVVuhsPfM6r17U/YObCF500ugSAhRo2qb+7O0nfited2d3bu3v7li1bFlAZAMD6Wu9A9omVS5HT7+un9muS3HPVefeY2gAANr31DmRvTnLytH1ykjetaj9putvywUk+terSJgDAprawOWRV9dokD09yt6q6OskZSV6Y5JyqOjXJR5M8fjr9vCTfn+TKJJ9Ncsqi6gIA2GgWFsi6+4l7OHT8bs7tJE9dVC0AABuZlfoBAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhsSyKrqmVV1eVVdVlWvrarbV9XRVfWeqrqyqv6oqm43ojYAgPW27oGsqo5M8tNJtnf3/ZIclOQJSX49yW919zck+WSSU9e7NgCAEUZdsjw4yR2q6uAkd0xybZJHJjl3Or4jyWPGlAYAsL7WPZB19zVJfiPJxzILYp9KcmGSG7r7S9NpVyc5cnevr6rTqmpnVe3ctWvXepQMALBQIy5ZHprkhCRHJ7l7kjsl+d55X9/dZ3b39u7evmXLlgVVCQCwfkZcsvyPSf62u3d19xeT/HGShyY5ZLqEmST3SHLNgNoAANbdiED2sSQPrqo7VlUlOT7JB5L8RZITp3NOTvKmAbUBAKy7EXPI3pPZ5P2Lklw61XBmkucmeVZVXZnk8CRnrXdtAAAjHLz3U/a/7j4jyRk3a74qyYMGlAMAMJSV+gEABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAG22sgq6qnV9Vdauasqrqoqr5nPYoDAFgG84yQ/Xh335jke5IcmuTJSV640KoAAJbIPIGspt/fn+R/dPflq9oAANhH8wSyC6vqbZkFsrdW1Z2TfGWxZQEALI+D5zjn1CTHJrmquz9bVYcnOWWhVQEALJF5Rsg6yX2T/PS0f6ckt19YRQAAS2aeQPbSJA9J8sRp/6Ykv7ewigAAlsw8lyz/XXcfV1XvT5Lu/mRV3W7BdQEALI15Rsi+WFUHZXbpMlW1JSb1AwDsN/MEst9J8oYkX1dVv5LkXUl+daFVAQAskb1esuzu11TVhUmOz2z9scd09xULrwwAYEnsMZBV1WGrdq9P8trVx7r7nxZZGADAslhrhOzCzOaN7W5V/k5y74VUBACwZPYYyLr76PUsBABgWc2z7EWq6nFJviuzkbG/6u43LrIoAIBlste7LKvqpUmekuTSJJcleUpVWRgWAGA/mWeE7JFJvqW7V9Yh25Hk8oVWBQCwROZZh+zKJEet2r/n1AYAwH4wzwjZnZNcUVXvnfa/I8nOqnpzknT3oxdVHADAMpgnkD1/4VUAACyxeVbqf2eSVNVdVp9vYVgAgP1jnrssT6uq65JckmRnZgvG7tyXTqvqkKo6t6o+WFVXVNVDquqwqnp7VX14+n3ovvQBAHCgmGdS/3OS3K+7t3X3vbv76O7e11X6X5LkLd39zUkekOSKJKcnOb+7j0ly/rQPALDpzRPIPpLks/urw6q6a5KHJTkrSbr7C919Q5ITkuyYTtuR5DH7q08AgI1snkn9z0vyf6rqPUk+v9LY3T99K/s8OsmuJH9YVQ/I7BLo05Mc0d3XTudcl+SI3b24qk5LclqSHHXUUbs7BQDggDLPCNnLk7wjybszC08rP7fWwUmOS/L73f3tST6Tm12enBah7d29uLvP7O7t3b19y5Yt+1AGAMDGMM8I2W27+1n7sc+rk1zd3e+Z9s/NLJB9oqq2dve1VbU1yfX7sU8AgA1rnhGyP5vutNw63Ql5WFUddms77O7rkny8qr5pajo+yQeSvDnJyVPbyUnedGv7AAA4kMwzQvbE6ffzVrV1kn250/JpSV5TVbdLclWSUzILh+dU1alJPprk8fvw/gAAB4x5FoY9en932t0XJ9m+m0PH7+++AAA2unlGyFJV90ty3yS3X2nr7lcvqigAgGWy10BWVWckeXhmgey8JN+X5F1JBDIAgP1gnkn9J2Z2KfG67j4ls5X177rQqgAAlsg8geyfu/srSb40PWD8+iT3XGxZAADLY545ZDur6pAkf5DZgrCfTvJ/F1kUAMAymecuy5+cNl9WVW9JcpfuvmSxZQEALI89BrKquleSG7r7U9P+IzJ74PdHq+qD3f2F9SkRAGBzW2sO2TlJ7pQkVXVsktcl+Vhmk/pfuvDKAACWxFqXLO/Q3X8/bf9okld294ur6jZJLl54ZQAAS2KtEbJatf3IJOcnyXTHJQAA+8laI2TvqKpzklyb5NAk70iSqtqaxPwxAID9ZK1A9owkP5Jka5Lv6u4vTu1fn+TnF1wXAMDS2GMg6+5OcvZu2t+/0IoAAJbMPCv1AwCwQAIZAMBgewxkVXX+9PvX168cAIDls9ak/q1V9Z1JHl1VZ+dfL4OR7r5ooZUBACyJtQLZ85P8YpJ7JPnNmx3rzNYmAwBgH611l+W5Sc6tql/s7hesY00AAEtlrRGyJEl3v6CqHp3kYVPTBd39J4stCwBgeez1Lsuq+rUkT0/ygenn6VX1q4suDABgWex1hCzJo5Icu/IMy6rakeT9SX5ukYUBACyLedchO2TV9l0XUAcAwNKaZ4Ts15K8v6r+IrOlLx6W5PSFVgUAsETmmdT/2qq6IMl3TE3P7e7rFloVAMASmWeELN19bZI3L7gWgKX0sf92/9ElwFI66vmXji7hX3iWJQDAYAIZAMBgawayqjqoqj64XsUAACyjNQNZd385yYeq6qh1qgcAYOnMM6n/0CSXV9V7k3xmpbG7H72wqgAAlsg8gewXF14FAMASm2cdsndW1b2SHNPdf15Vd0xy0OJLAwBYDvM8XPy/JDk3ycunpiOTvHGBNQEALJV5lr14apKHJrkxSbr7w0m+bpFFAQAsk3kC2ee7+wsrO1V1cJJeXEkAAMtlnkD2zqr6uSR3qKrvTvK6JP97sWUBACyPeQLZ6Ul2Jbk0yU8kOS/JLyyyKACAZTLPXZZfqaodSd6T2aXKD3W3S5YAAPvJXgNZVT0qycuSfCRJJTm6qn6iu/9s0cUBACyDeRaGfXGSR3T3lUlSVfdJ8qdJBDIAgP1gnjlkN62EsclVSW5aUD0AAEtnjyNkVfW4aXNnVZ2X5JzM5pD9cJL3rUNtAABLYa1Llj+4avsTSf7DtL0ryR0WVhEAwJLZYyDr7lPWsxAAgGU1z12WRyd5WpJtq8/v7kcvriwAgOUxz12Wb0xyVmar839lodUAACyheQLZ57r7dxZeCQDAkponkL2kqs5I8rYkn19p7O6LFlYVAMASmSeQ3T/Jk5M8Ml+9ZNnTPgAA+2ieQPbDSe7d3V9YdDEAAMtonpX6L0tyyILrAABYWvOMkB2S5INV9b786zlklr0AANgP5glkZyyi46o6KMnOJNd09w9M652dneTwJBcmebLLpADAMthrIOvudy6o76cnuSLJXab9X0/yW919dlW9LMmpSX5/QX0DAGwYe51DVlU3VdWN08/nqurLVXXjvnRaVfdI8qgkr5j2K7O7Ns+dTtmR5DH70gcAwIFinhGyO69sT8HphCQP3sd+fzvJzyZZee/Dk9zQ3V+a9q9OcuQ+9gEAcECY5y7Lf9Ezb0zyn25th1X1A0mu7+4Lb+XrT6uqnVW1c9euXbe2DACADWOeh4s/btXubZJsT/K5fejzoUkeXVXfn+T2mc0he0mSQ6rq4GmU7B5Jrtndi7v7zCRnJsn27dt7H+oAANgQ5rnL8gdXbX8pyd9ldtnyVunu5yV5XpJU1cOTPLu7n1RVr0tyYmZ3Wp6c5E23tg8AgAPJPHPITlmPQpI8N8nZVfXLSd6f5Kx16hcAYKg9BrKqev4ar+vufsG+dt7dFyS5YNq+KsmD9vU9AQAONGuNkH1mN213ymx9sMOT7HMgAwBgjUDW3S9e2a6qO2e2kOspmc3xevGeXgcAwC2z5hyyqjosybOSPCmzxVqP6+5PrkdhAADLYq05ZC9K8rjMlpi4f3d/et2qAgBYImstDPszSe6e5BeS/P2qxyfdtK+PTgIA4KvWmkN2i1bxBwDg1hG6AAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAYTyAAABhPIAAAGE8gAAAZb90BWVfesqr+oqg9U1eVV9fSp/bCqentVfXj6feh61wYAMMKIEbIvJfmZ7r5vkgcneWpV3TfJ6UnO7+5jkpw/7QMAbHrrHsi6+9ruvmjavinJFUmOTHJCkh3TaTuSPGa9awMAGGHoHLKq2pbk25O8J8kR3X3tdOi6JEeMqgsAYD0NC2RV9bVJXp/kGd194+pj3d1Jeg+vO62qdlbVzl27dq1DpQAAizUkkFXVbTMLY6/p7j+emj9RVVun41uTXL+713b3md29vbu3b9myZX0KBgBYoBF3WVaSs5Jc0d2/uerQm5OcPG2fnORN610bAMAIBw/o86FJnpzk0qq6eGr7uSQvTHJOVZ2a5KNJHj+gNgCAdbfugay735Wk9nD4+PWsBQBgI7BSPwDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgGyqQVdX3VtWHqurKqjp9dD0AAOthwwSyqjooye8l+b4k903yxKq679iqAAAWb8MEsiQPSnJld1/V3V9IcnaSEwbXBACwcBspkB2Z5OOr9q+e2gAANrWDRxdwS1XVaUlOm3Y/XVUfGlkPB5S7JfmH0UVwy9VvnDy6BFiL75YD1Rm13j3ea08HNlIguybJPVft32Nq+1e6+8wkZ65XUWweVbWzu7ePrgPYXHy3sD9spEuW70tyTFUdXVW3S/KEJG8eXBMAwMJtmBGy7v5SVf1UkrcmOSjJK7v78sFlAQAs3IYJZEnS3eclOW90HWxaLnUDi+C7hX1W3T26BgCApbaR5pABACwlgYylVFWHVNVPrtq/e1WdO7Im4MBSVU+pqpOm7R+rqruvOvYKT5vhlnDJkqVUVduS/El33290LcCBr6ouSPLs7t45uhYOTEbI2JCqaltVXVFVf1BVl1fV26rqDlV1n6p6S1VdWFV/VVXfPJ1/n6p6d1VdWlW/XFWfntq/tqrOr6qLpmMrj+N6YZL7VNXFVfWiqb/Lpte8u6q+dVUtF1TV9qq6U1W9sqreW1XvX/VewAFm+pv/YFW9ZvquObeq7lhVx09/35dOf+9fM53/wqr6QFVdUlW/MbX9UlU9u6pOTLI9yWum75Q7rPreeEpVvWhVvz9WVb87bf/o9H1ycVW9fHqmM0tKIGMjOybJ73X3tya5IckPZXY309O6+4FJnp3kpdO5L0nyku6+f2aP3VrxuSSP7e7jkjwiyYurqpKcnuQj3X1sdz/nZv3+UZLHJ0lVbU2ydfqv9+eTvKO7HzS914uq6k77+0MD6+abkry0u78lyY1JnpXkVUl+ZPouOTjJf62qw5M8Nsm3dve3Jfnl1W/S3ecm2ZnkSdN3yj+vOvz66bUrfiTJ2VX1LdP2Q7v72CRfTvKk/f8ROVAIZGxkf9vdF0/bFybZluQ7k7yuqi5O8vIkW6fjD0nyumn7f616j0ryq1V1SZI/z+z5qEfspd9zkpw4bT8+ycrcsu9JcvrU9wVJbp/kqFv2kYAN5OPd/dfT9v9Mcnxm3zv/b2rbkeRhST6V2T93Z1XV45J8dt4OuntXkquq6sFTsPvmJH899fXAJO+bvlOOT3Lvff9IHKg21DpkcDOfX7X95cyC1A3Tf5PzelKSLUke2N1frKq/yyxI7VF3X1NV/1hV35bZf7BPmQ5Vkh/qbs9Phc3h5pOob0hy+L85abZw+YMyC00nJvmpJI+8Bf2cndk/dx9M8obu7mmkfkd3P+/WFM7mY4SMA8mNSf62qn44SWrmAdOxd2d2STOZPXZrxV2TXD+FsUfkqw92vSnJndfo64+S/GySu3b3JVPbW5M8bfoiTVV9+75+IGCoo6rqIdP2f87ssuO2qvqGqe3JSd5ZVV+b2XfBeUmemeQB//at1vxOeUOSE5I8MbNwliTnJzmxqr4uSarqsKra44On2fwEMg40T0pyalX9TZLLM/uSS5JnJHnWdGnyGzK7xJAkr0myvaouTXJSZv+hprv/MclfV9VlqyfcrnJuZsHunFVtL0hy2ySXVNXl0z5w4PpQkqdW1RVJDk3yW0lOyWxaxKVJvpLkZZkFrT+Zvl/eldlcs5t7VZKXrUzqX32guz+Z5Iok9+ru905tH0jyC0neNr3v2/PVKRgsIctesClU1R2T/PN0KeAJSZ7Y3e6CBHbL0jdsNOaQsVk8MMnvTpcTb0jy42PLAYD5GSEDABjMHDIAgMEEMgCAwQQyAIDBBDJg06uqr6+qs6vqI9NzUM+rqm9ceX4pwGjusgQ2tenO2zdktir6E6a2B2Tvj9ACWDdGyIDN7hFJvtjdL1tp6O6/SfLxlf2q2lZVf1VVF00/3zm1b62qv5wW+7ysqv59VR1UVa+a9i+tqmeu/0cCNhsjZMBmd7/MHk6/luuTfHd3f66qjkny2iTbM3uczlu7+1eq6qAkd0xybJIjVxYUrapDFlU4sDwEMoDZI7F+t6qOzexB9t84tb8vySur6rZJ3tjdF1fVVUnuXVX/PcmfJnnbiIKBzcUlS2CzuzyzJzms5ZlJPpHZQ6O3J7ldknT3XyZ5WJJrkryqqk6ankv4gCQXJHlKklcspmxgmQhkwGb3jiRfU1WnrTRU1bclueeqc+6a5Nru/kqSJyc5aDrvXkk+0d1/kFnwOq6q7pbkNt39+sweDn3c+nwMYDNzyRLY1KYHzj82yW9X1XOTfC7J3yV5xqrTXprk9VV1UpK3JPnM1P7wJM+pqi8m+XSSk5IcmeQPq2rlH9rnLfozAJufZ1kCAAzmkiUAwGACGQDAYAIZAMBgAhkAwGACGQDAYAIZAMBgAhkAwGACGQDAYP8fBLUx8BZaEXkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 42\n",
      "1  negative_c1                 11\n",
      "2  negative_c2                 20\n",
      "3  negative_c3                 27\n",
      "4  positive_c0                 50\n",
      "Total samples: 150\n",
      "Average number of samples per class: 30.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAF0CAYAAADy/jdLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAbpklEQVR4nO3de5wlZX3n8c9XBhWRi8hIkNugYoyrgjrxhkGFaIyugAaNrAISsiNr8B4jul6SmBh8ETQaZQGFOO6qgCiCBBXDzcsqMMMdgYiIRsItCgIalMsvf1S1NDjdfXrgPGe65vN+vfrVVXXqVP3Oebpnvv1UnedJVSFJkqTxe8CkC5AkSVpbGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpkUWTLmAUm266aS1ZsmTSZUiSJM1p5cqV/1FVi1f12IIIXkuWLGHFihWTLkOSJGlOSX4402NeapQkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUyFinDEpyFXALcCdwR1UtTbIJcAywBLgKeEVV3TjOOiRJktYELXq8nldVO1TV0n79QODUqtoOOLVflyRJGrxJXGrcDVjeLy8Hdp9ADZIkSc2N9VIjUMApSQo4vKqOADarqmv6x68FNlvVE5MsA5YBbL311mMuU5Kkhemjb/3SpEtYKxxwyEvul+OMO3g9u6quTvII4GtJLpv+YFVVH8p+Qx/SjgBYunTpKveRJElaSMZ6qbGqru6/Xw8cDzwNuC7J5gD99+vHWYMkSdKaYmzBK8n6STaYWgZeAFwMnAjs0++2D3DCuGqQJElak4zzUuNmwPFJps7zmar6SpJzgGOT7Af8EHjFGGuQJElaY4wteFXVlcD2q9j+E2CXcZ1XkiRpTeXI9ZIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJamTRpAu4vz31bZ+adAmDt/LgvSddgiRJC5I9XpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGxh68kqyT5LwkJ/Xr2yY5K8kVSY5J8sBx1yBJkrQmaNHj9Ubg0mnrHwA+VFWPAW4E9mtQgyRJ0sSNNXgl2RJ4MfCJfj3AzsBx/S7Lgd3HWYMkSdKaYtw9Xv8A/AVwV7/+cOCmqrqjX/8xsMWqnphkWZIVSVbccMMNYy5TkiRp/MYWvJL8d+D6qlq5Os+vqiOqamlVLV28ePH9XJ0kSVJ7i8Z47B2BXZO8CHgwsCHwYWDjJIv6Xq8tgavHWIMkSdIaY2w9XlX1jqrasqqWAK8ETquqVwGnA3v0u+0DnDCuGiRJktYkkxjH6+3AW5JcQXfP15ETqEGSJKm5cV5q/LWqOgM4o1++Enhai/NKkiStSRy5XpIkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktTInMEryRuTbJjOkUnOTfKCFsVJkiQNySg9Xn9SVTcDLwAeBuwFHDTWqiRJkgZolOCV/vuLgP9bVZdM2yZJkqQRjRK8ViY5hS54fTXJBsBd4y1LkiRpeBaNsM9+wA7AlVX1iyQPB/Yda1WSJEkDNEqPVwGPB97Qr68PPHhsFUmSJA3UKMHrUOCZwJ79+i3Ax8ZWkSRJ0kCNcqnx6VX1lCTnAVTVjUkeOOa6JEmSBmeUHq/bk6xDd8mRJIvx5npJkqR5GyV4fQQ4HnhEkr8Fvgm8f6xVSZIkDdCclxqr6tNJVgK70I3ftXtVXTr2yiRJkgZmxuCVZJNpq9cDn53+WFX9dJyFSZIkDc1sPV4r6e7rWtUo9QU8aiwVSZIkDdSMwauqtm1ZiCRJ0tCNMpwESV4GPJuup+sbVfXFcRYlSZI0RHN+qjHJocD+wEXAxcD+SRxAVZIkaZ5G6fHaGfidqpoax2s5cMlYq5IkSRqgUcbxugLYetr6Vv02SZIkzcMoPV4bAJcmObtf/11gRZITAapq13EVJ0mSNCSjBK/3jL0KSZKktcAoI9efCZBkw+n7O4CqJEnS/IzyqcZlSa4FLgRW0A2sumKE5z04ydlJLkhySZK/6rdvm+SsJFckOSbJA+/ri5AkSVoIRrm5/m3AE6pqSVU9qqq2rapRRq3/JbBzVW0P7AC8MMkzgA8AH6qqxwA3AvutZu2SJEkLyijB6/vAL+Z74Orc2q+u238V3fAUx/XblwO7z/fYkiRJC9EoN9e/A/j/Sc6i68UCoKreMNcTk6xDd2nyMcDH6ELcTVV1R7/Lj4Et5qzg8svhuc8doVQ4/PvXjbSf7oNzjpp0BZKk3ku//5NJl7B2WHnI/XKYUYLX4cBpdCPX3zWfg1fVncAOSTYGjgceN+pzkywDlgE86UEPms9pJUmS1kijBK91q+ot9+UkVXVTktOBZwIbJ1nU93ptCVw9w3OOAI4AWLp0aXHGGSOd67Vv+9R9KVUjWHnw3pMuQZLUO/6tX5p0CWuFAw55yeg7JzM+NMo9Xl/uP9m4eZJNpr7mPmcW9z1dJFkPeD5wKXA6sEe/2z7ACSPUIEmStOCN0uO1Z//9HdO2FTDXJxs3B5b393k9ADi2qk5K8l3g6CR/A5wHHDnPmiVJkhakUQZQ3XZ1DlxVFwJPXsX2K4Gnrc4xJUmSFrJRerxI8gTg8cCDp7ZVlTdTSZIkzcOcwSvJe4Hn0gWvk4E/BL4JGLwkSZLmYZSb6/cAdgGurap9ge2BjcZalSRJ0gCNErz+s6ruAu7oJ8q+HthqvGVJkiQNzyj3eK3oh4X4ON0o9LcC3x5nUZIkSUM0yqcaX9cvHpbkK8CG/ScWJUmSNA8zBq8k29DNq/izfv15dBNa/zDJZVX1qzYlSpIkDcNs93gdC6wPkGQH4HPAj+hurj907JVJkiQNzGyXGterqn/vl18NHFVVhyR5AHD+2CuTJEkamNl6vKbP8LgzcCpA/wlHSZIkzdNsPV6nJTkWuAZ4GHAaQJLNAe/vkiRJmqfZgtebgD+mm+z62VV1e7/9t4D/Pea6JEmSBmfG4FVVBRy9iu3njbUiSZKkgRppkmxJ0rCdudNzJl3C4D3n62dOugStAUaZMkiSJEn3gxmDV5JT++8faFeOJEnScM12qXHzJM8Cdk1yNPccXoKqOneslUmSJA3MbMHrPcC7gS2BD97rsaIb20uSJEkjmu1TjccBxyV5d1W9r2FNkiRJgzTnpxqr6n1JdgV26jedUVUnjbcsSZKk4ZnzU41J/g54I/Dd/uuNSd4/7sIkSZKGZpRxvF4M7DA1R2OS5cB5wDvHWZgkSdLQjDqO18bTljcaQx2SJEmDN0qP198B5yU5nW5IiZ2AA8dalSRJ0gCNcnP9Z5OcAfxuv+ntVXXtWKuSJEkaoJHmaqyqa4ATx1yLJEnSoDlXoyRJUiMGL0mSpEZmDV5J1klyWatiJEmShmzW4FVVdwKXJ9m6UT2SJEmDNcrN9Q8DLklyNvDzqY1VtevYqpIkSRqgUYLXu8dehSRJ0lpglHG8zkyyDbBdVf1LkocA64y/NEmSpGEZZZLs/wkcBxzeb9oC+OIYa5IkSRqkUYaT+DNgR+BmgKr6HvCIcRYlSZI0RKMEr19W1a+mVpIsAmp8JUmSJA3TKMHrzCTvBNZL8nzgc8CXxluWJEnS8IwSvA4EbgAuAl4LnAy8a5xFSZIkDdEon2q8K8ly4Cy6S4yXV5WXGiVJkuZpzuCV5MXAYcD3gQDbJnltVX153MVJkiQNySgDqB4CPK+qrgBI8mjgnwGDlyRJ0jyMco/XLVOhq3clcMuY6pEkSRqsGXu8krysX1yR5GTgWLp7vF4OnNOgNkmSpEGZ7VLjS6YtXwc8p1++AVhvbBVJkiQN1IzBq6r2bVmIJEnS0I3yqcZtgdcDS6bvX1W7jq8sSZKk4RnlU41fBI6kG63+rrFWI0mSNGCjBK/bquojY69EkiRp4EYJXh9O8l7gFOCXUxur6tyxVSVJkjRAowSvJwJ7ATtz96XG6tclSZI0olGC18uBR1XVr8ZdjCRJ0pCNMnL9xcDGY65DkiRp8Ebp8doYuCzJOdzzHi+Hk5AkSZqHUYLXe1fnwEm2Aj4FbEZ3T9gRVfXhJJsAx9CNC3YV8IqqunF1ziFJkrSQzBm8qurM1Tz2HcBbq+rcJBsAK5N8DXgNcGpVHZTkQOBA4O2reQ5JkqQFY857vJLckuTm/uu2JHcmuXmu51XVNVNDTlTVLcClwBbAbsDyfrflwO6rXb0kSdICMkqP1wZTy0lCF5yeMZ+TJFkCPBk4C9isqq7pH7qW7lKkJEnS4I1yj9evVVUBX+wHVD1wlOckeSjweeBNVXVzl93uPl6SmuF5y4BlAFtvvfV8ypQ0ATv+446TLmHwvvX6b026BEn30SiTZL9s2uoDgKXAbaMcPMm6dKHr01X1hX7zdUk2r6prkmwOXL+q51bVEcARAEuXLl1lOJMkSVpIRunxesm05TvoPom421xP6i9LHglcWlUfnPbQicA+wEH99xNGLVaSJGkhG+Uer31X89g70k01dFGS8/tt76QLXMcm2Q/4IfCK1Ty+JEnSgjJj8ErynlmeV1X1vtkOXFXfBDLDw7uMUJskSdKgzNbj9fNVbFsf2A94ODBr8JIkSdI9zRi8quqQqeV+ANQ3AvsCRwOHzPQ8SZIkrdqs93j10/u8BXgV3WCnT3F6H0mSpNUz2z1eBwMvoxvS4YlVdWuzqiRJkgZotimD3go8EngX8O/Tpg26ZZQpgyRJknRPs93jNec8jpIkSRqd4UqSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhpZNOkCpOl+9NdPnHQJg7f1ey6adAmStNayx0uSJKmRsQWvJEcluT7JxdO2bZLka0m+139/2LjOL0mStKYZZ4/XJ4EX3mvbgcCpVbUdcGq/LkmStFYYW/Cqqq8DP73X5t2A5f3ycmD3cZ1fkiRpTdP6Hq/NquqafvlaYLPG55ckSZqYid1cX1UF1EyPJ1mWZEWSFTfccEPDyiRJksajdfC6LsnmAP3362fasaqOqKqlVbV08eLFzQqUJEkal9bB60Rgn355H+CExueXJEmamHEOJ/FZ4NvAbyf5cZL9gIOA5yf5HvD7/bokSdJaYWwj11fVnjM8tMu4zilJkrQmc+R6SZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJasTgJUmS1IjBS5IkqRGDlyRJUiMGL0mSpEYMXpIkSY0YvCRJkhoxeEmSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIaMXhJkiQ1YvCSJElqxOAlSZLUiMFLkiSpEYOXJElSIwYvSZKkRgxekiRJjRi8JEmSGjF4SZIkNWLwkiRJamQiwSvJC5NcnuSKJAdOogZJkqTWmgevJOsAHwP+EHg8sGeSx7euQ5IkqbVJ9Hg9Dbiiqq6sql8BRwO7TaAOSZKkpiYRvLYA/m3a+o/7bZIkSYOWqmp7wmQP4IVV9af9+l7A06vqgHvttwxY1q/+NnB500Lb2hT4j0kXodVi2y1stt/CZdstbENvv22qavGqHljUuhLgamCraetb9tvuoaqOAI5oVdQkJVlRVUsnXYfmz7Zb2Gy/hcu2W9jW5vabxKXGc4Dtkmyb5IHAK4ETJ1CHJElSU817vKrqjiQHAF8F1gGOqqpLWtchSZLU2iQuNVJVJwMnT+Lca6i14pLqQNl2C5vtt3DZdgvbWtt+zW+ulyRJWls5ZZAkSVIjBi9JkqRGDF4NJdk4yeumrT8yyXENzrttkrP6uTGP6T9NqnmaYPsd0LddJdl03Ocbogm23af7eWkvTnJUknXHfc4hmmD7HZnkgiQXJjkuyUPHfc6FLsn+Sfbul1+T5JHTHvvEuKcITOcj/b+ZFyZ5yjjPtzq8x6uhJEuAk6rqCY3Peyzwhao6OslhwAVV9X9a1jAEE2y/JwM3AmcAS6tqyIMOjsUE2+5FwJf71c8AX/d3b/4m2H4bVtXN/fIHgeur6qCWNSxkSc4A/ryqVjQ854uA1wMvAp4OfLiqnt7q/KOwx2uaJEuSXJrk40kuSXJKkvWSPDrJV5KsTPKNJI/r9390ku8kuSjJ3yS5td/+0CSnJjm3f2xqLsqDgEcnOT/Jwf35Lu6f850k/21aLWckWZpk/f4v5bOTnDftWKuqf50kf9//dX1hktcnCbAzMPXX4XJg9/v9zVsDDLH9AKrqvKq6akxv2xphwG13cvWAs+kGjB6cAbffVOgKsB4w6J6K/n29LF1P7aXpevkekmSX/j28qH9PH9Tvf1CS7/bv2d/32/4yyZ+nm6VmKfDpvt3Wm9Y2+yc5eNp5X5Pko/3yq/s2Oz/J4UnWmaXeF/Y/KxckObXfvBvwqf7X7jvAxkk2H9Nbtnqqyq/+C1gC3AHs0K8fC7waOBXYrt/2dOC0fvkkYM9+eX/g1n55EbBhv7wpcAWQ/vgX3+t8F/fLbwb+ql/eHLi8X34/8Op+eWPgX4H1Z6j/f9EFrEX9+iZT55+2z1bTaxjS1xDb716PXwVsOun32bZbrbZbFzgX+L1Jv9e23/zaD/gn4DrgdOAhk36vG7RjATv260cB76KbX/mx/bZPAW8CHk43ld/UlbON++9/SdfLBXf30jN9HVjMPf9f+jLwbOB3gC8B6/bbDwX2nqHWxX1d205vs/5n69nT9jt1eg1rwpc9Xr/pB1V1fr+8ku4H8VnA55KcDxxO98sN8Ezgc/3yZ6YdI8D7k1wI/AvdJOCbzXHeY4E9+uVXcHcP1QuAA/tznwE8GNh6hmP8PnB4Vd0BUFU/neOcQ2T7LVxDbrtD6S4zfmOOWhayQbZfVe0LPBK4FPjjOWoZgn+rqm/1y/8P2IWubf+137Yc2An4GXAbcGSSlwG/GPUEVXUDcGWSZyR5OPA44Fv9uZ4KnNO32y7Ao2Y4zDPofqd+0B9zwfx7OZEBVNdwv5y2fCfdL/1NVbXDPI7xKro0/tSquj3JVXS/9DOqqquT/CTJk+h+uffvHwrwR1W1upOE/4Suq3VR/4/KKufGHJChtd/aZJBtl+S9fU2vvS/HWQAG2X79Oe5McjTwF3Q9YEN278upN9H1bt1zp24WmqfRhaM9gAPobmsZ1dF0Qfky4Piqqv6S7vKqesfqFN4baT7oSbLHa243Az9I8nL49Scmtu8f+w7wR/3yK6c9ZyO6mzBvT/I8YJt++y3ABrOc6xi6X+yNqurCfttXgal7taZutJ7J14DXJlnU77tJdX2tp3P3X4T7ACfM9oIHZkG33ygvcMAWfNsl+VPgD+guq9011wsemAXdfn29j5mqHdiVLiQM3dZJntkv/w9gBbBk6r0A9gLOTPcJz42qm4nmzcD2v3moWdvteLr7sfakC2HQXRbcI8kj4NftsM0Mz/8OsFOSbaf27befCOzdt98zgJ9V1TVzvuqGDF6jeRWwX5ILgEvofligu879lr5b/DF0Xa8AnwaWJrkI2Jv+l7WqfgJ8K90NnAfzm46j+0fo2Gnb3kd3f8iFSS7p12fyCeBH/b4X0P3SALy9r/MKur9cjhz1hQ/Egm6/JG9I8mO6v9wuTPKJ+bz4BW5Btx1wGF3Pz7fT3Sz8npFf+TAs5PYLsLyv5SK6y6R/PY/XvlBdDvxZkkuBhwEfAvalu2R8EXAX3c/1BsBJfRt+E3jLKo71SeCw/md/vekPVNWNdJdvt6mqs/tt36W7p+yU/rhf4+7L09zr+TcAy4Av9G12TP/QycCVdPcHfhx43aqeP0kOJ3EfJHkI8J99F+kr6f6qnfGTM1qz2H4Ll223sNl+a6ZMaNiOtY33eN03TwU+2ndD3wT8yWTL0TzZfguXbbew2X5aa9njtQAl+QPgA/fa/IOqeukk6tH82H4Ll223sNl+C1OSs4AH3WvzXlV10STqua8MXpIkSY14c70kSVIjBi9JkqRGDF6SBiPJbyU5Osn3080PeHKSx6af10+SJs1PNUoahP4TcsfTjXz9yn7b9sw95YwkNWOPl6SheB5we1UdNrWhqi6gm0gX6MYpSvKNJOf2X8/qt2+e5Ov9QI8XJ/m9JOsk+WS/flGSN7d/SZKGxh4vSUPxBLrJmWdzPfD8qrotyXbAZ4GldCOVf7Wq/jbJOsBDgB2ALaYGk0yy8bgKl7T2MHhJWpusSzdw5w50Ezk/tt9+DnBUknWBL1bV+UmuBB6V5B+BfwZOmUTBkobFS42ShuISuhHRZ/Nm4Dq6CX2XAg8EqKqvAzsBVwOfTLJ3P5fc9sAZwP508/lJ0n1i8JI0FKcBD0qybGpDkicBW03bZyPgmqq6C9gLWKffbxvguqr6OF3AekqSTYEHVNXn6SbufUqblyFpyLzUKGkQ+gmXXwr8Q5K3A7cBVwFvmrbbocDnk+wNfAX4eb/9ucDbktwO3ArsDWwB/FOSqT9Q3zHu1yBp+JwySJIkqREvNUqSJDVi8JIkSWrE4CVJktSIwUuSJKkRg5ckSVIjBi9JkqRGDF6SJEmNGLwkSZIa+S/YWXz5TaaRawAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 1.0\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 1.0\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 1.0\n",
      "赵凌云 1.0 1.0 1.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 1.0\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 1.0\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 1.0\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 1.0\n",
      "Average Accuracy CDSMOTE DB: 1.0\n",
      "page-blocks0_libsvm.txt\n",
      "Dataset: page-blocks0_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               4913\n",
      "1  positive                559\n",
      "Total samples: 5472\n",
      "Imbalance Ratio (IR): 8.788908765652952\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                619\n",
      "1  negative_c1               2209\n",
      "2  negative_c2               1533\n",
      "3  negative_c3                552\n",
      "4  positive_c0                559\n",
      "Total samples: 5472\n",
      "Average number of samples per class: 1094.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                619\n",
      "1  negative_c1               2209\n",
      "2  negative_c2               1533\n",
      "3  negative_c3                552\n",
      "4  positive_c0               1533\n",
      "Total samples: 6446\n",
      "New average number of samples per class: 613.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9292763157894737\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9303728070175439\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9380482456140351\n",
      "赵凌云 0.6315466717944582 0.6984137048603335 0.5475514680843659\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9143787808282923\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9106561191251745\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9185288640595903\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9325657894736842\n",
      "Average Accuracy CDSMOTE DB: 0.9145212546710191\n",
      "pima_libsvm.txt\n",
      "Dataset: pima_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                500\n",
      "1  positive                268\n",
      "Total samples: 768\n",
      "Imbalance Ratio (IR): 1.8656716417910448\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                 20\n",
      "1  negative_c1                213\n",
      "2  negative_c2                158\n",
      "3  negative_c3                109\n",
      "4  positive_c0                268\n",
      "Total samples: 768\n",
      "Average number of samples per class: 153.6\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original minority class is close to average. No oversampling needed.\n",
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.76953125\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.78125\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.75390625\n",
      "赵凌云 0.6850769852708387 0.7112784058404257 0.6112526699730906\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.71875\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.74609375\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.765625\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.7682291666666666\n",
      "Average Accuracy CDSMOTE DB: 0.7434895833333334\n",
      "winequality-red-8_vs_6_libsvm.txt\n",
      "Dataset: winequality-red-8_vs_6_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                638\n",
      "1  positive                 18\n",
      "Total samples: 656\n",
      "Imbalance Ratio (IR): 35.44444444444444\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                144\n",
      "1  negative_c1                142\n",
      "2  negative_c2                131\n",
      "3  negative_c3                221\n",
      "4  positive_c0                 18\n",
      "Total samples: 656\n",
      "Average number of samples per class: 131.2\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                144\n",
      "1  negative_c1                142\n",
      "2  negative_c2                131\n",
      "3  negative_c3                221\n",
      "4  positive_c0                142\n",
      "Total samples: 780\n",
      "New average number of samples per class: 56.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9726027397260274\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9726027397260274\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9724770642201835\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.926923076923077\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8730769230769231\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.926923076923077\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9725608478907461\n",
      "Average Accuracy CDSMOTE DB: 0.908974358974359\n",
      "yeast-0-5-6-7-9_vs_4_libsvm.txt\n",
      "Dataset: yeast-0-5-6-7-9_vs_4_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                477\n",
      "1  positive                 51\n",
      "Total samples: 528\n",
      "Imbalance Ratio (IR): 9.352941176470589\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                131\n",
      "1  negative_c1                102\n",
      "2  negative_c2                 94\n",
      "3  negative_c3                150\n",
      "4  positive_c0                 51\n",
      "Total samples: 528\n",
      "Average number of samples per class: 105.6\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                131\n",
      "1  negative_c1                102\n",
      "2  negative_c2                 94\n",
      "3  negative_c3                150\n",
      "4  positive_c0                131\n",
      "Total samples: 608\n",
      "New average number of samples per class: 52.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9034090909090909\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9034090909090909\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9034090909090909\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9064039408866995\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9064039408866995\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8564356435643564\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9034090909090909\n",
      "Average Accuracy CDSMOTE DB: 0.8897478417792518\n",
      "yeast-1_vs_7_libsvm.txt\n",
      "Dataset: yeast-1_vs_7_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                429\n",
      "1  positive                 30\n",
      "Total samples: 459\n",
      "Imbalance Ratio (IR): 14.3\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                152\n",
      "1  negative_c1                 68\n",
      "2  negative_c2                153\n",
      "3  negative_c3                 56\n",
      "4  positive_c0                 30\n",
      "Total samples: 459\n",
      "Average number of samples per class: 91.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                152\n",
      "1  negative_c1                 68\n",
      "2  negative_c2                153\n",
      "3  negative_c3                 56\n",
      "4  positive_c0                152\n",
      "Total samples: 581\n",
      "New average number of samples per class: 60.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAAF3CAYAAAALu1cUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAf+0lEQVR4nO3de5hddX3v8fdH4gUsEpCIGAhERFtqq8KoWKxVaRVtBWqthapQpCdSEa9VwdNKjx4tHrTWS1FRkHgOBZF6QYsViwbUR8AEuQrUiKhJucQrWguKfM8fa0W2IZlskuz9m5n9fj3Pfmat31p7re+e30zymd+6paqQJElSO/dqXYAkSdKkM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYyMLZElOTXJLkqvWaT8mybVJrk7yfwbaj0uyMsl1SZ4+qrokSZJmmnkj3PZpwLuBD61tSPIU4CDgUVV1e5IH9e17AYcAvwk8BPj3JA+vql+MsD5JkqQZYWQjZFV1IfD9dZr/Cjihqm7v17mlbz8IOLOqbq+qbwIrgceNqjZJkqSZZJQjZOvzcOB3k7wJuA3466r6CrAQuGhgvVV927R23HHH2n333UdRpyRJ0ha1YsWK71bVgvUtG3cgmwfsAOwLPBY4K8lD78kGkiwBlgAsWrSI5cuXb/EiJUmStrQk39rQsnFfZbkK+Gh1LgHuBHYEVgO7Dqy3S992N1V1clVNVdXUggXrDZmSJEmzyrgD2ceBpwAkeThwH+C7wDnAIUnum2QxsCdwyZhrkyRJamJkhyyTnAE8GdgxySrgeOBU4NT+Vhg/Aw6vqgKuTnIW8DXgDuBor7CUJEmTIl0emp2mpqbKc8gkSdJskGRFVU2tb5l36pckSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqbGSPTpKktfZ7136tS5jzvnTMl1qXIGkzOEImSZLU2MSMkO3z6g+1LmEirDjxsNYlSJJ6737VJ1uXMOe95G3P2iLbcYRMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNjSyQJTk1yS1JrlrPslclqSQ79vNJ8s4kK5NckWTvUdUlSZI004xyhOw04IB1G5PsCjwN+PZA8zOAPfvXEuA9I6xLkiRpRhlZIKuqC4Hvr2fR24HXADXQdhDwoepcBMxPsvOoapMkSZpJxnoOWZKDgNVVdfk6ixYC3xmYX9W3SZIkzXnzxrWjJNsAr6M7XLk521lCd1iTRYsWbYHKJEmS2hrnCNkewGLg8iQ3ALsAlyZ5MLAa2HVg3V36trupqpOraqqqphYsWDDikiVJkkZvbIGsqq6sqgdV1e5VtTvdYcm9q+om4BzgsP5qy32BH1XVjeOqTZIkqaVR3vbiDODLwCOSrEpy5DSrnwtcD6wE3g+8eFR1SZIkzTQjO4esqg7dyPLdB6YLOHpUtUiSJM1k3qlfkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJamxkgSzJqUluSXLVQNuJSa5NckWSjyWZP7DsuCQrk1yX5OmjqkuSJGmmGeUI2WnAAeu0fRZ4ZFX9NvAfwHEASfYCDgF+s3/PSUm2GmFtkiRJM8bIAllVXQh8f52286rqjn72ImCXfvog4Myqur2qvgmsBB43qtokSZJmkpbnkL0Q+HQ/vRD4zsCyVX2bJEnSnNckkCX5n8AdwOmb8N4lSZYnWb5mzZotX5wkSdKYjT2QJfkL4I+A51VV9c2rgV0HVtulb7ubqjq5qqaqamrBggUjrVWSJGkcxhrIkhwAvAY4sKp+OrDoHOCQJPdNshjYE7hknLVJkiS1Mm9UG05yBvBkYMckq4Dj6a6qvC/w2SQAF1XVUVV1dZKzgK/RHco8uqp+MaraJEmSZpKRBbKqOnQ9zadMs/6bgDeNqh5JkqSZyjv1S5IkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqbGNBrIkL0vygHROSXJpkqeNozhJkqRJMMwI2Qur6lbgacD2wAuAE0ZalSRJ0gQZJpCl//pM4P9W1dUDbZIkSdpMwwSyFUnOowtkn0myLXDnaMuSJEmaHMMEsiOBY4HHVtVPgfsAR2zsTUlOTXJLkqsG2nZI8tkkX++/bt+3J8k7k6xMckWSvTfx80iSJM06wwSyAvYCXtrP3x+43xDvOw04YJ22Y4Hzq2pP4Px+HuAZwJ79awnwniG2L0mSNCcME8hOAp4AHNrP/xj4p429qaouBL6/TvNBwNJ+eilw8ED7h6pzETA/yc5D1CZJkjTrDRPIHl9VRwO3AVTVD+gOW26Knarqxn76JmCnfnoh8J2B9Vb1bZIkSXPeMIHs50m2ojt0SZIFbIGT+quq1m7znkiyJMnyJMvXrFmzuWVIkiQ1N0wgeyfwMeBBSd4EfBF48ybu7+a1hyL7r7f07auBXQfW26Vvu5uqOrmqpqpqasGCBZtYhiRJ0syx0UBWVacDrwH+HrgROLiqPrKJ+zsHOLyfPhz4xED7Yf3VlvsCPxo4tClJkjSnzdvQgiQ7DMzeApwxuKyq1j1hf933nwE8GdgxySrgeLo7/J+V5EjgW8Bz+9XPpbvP2UrgpwxxWw1JkqS5YoOBDFhBd47X+u7KX8BDp9twVR26gUX7r2fdAo6ebnuSJElz1QYDWVUtHmchkiRJk2q6EbJfSvJs4Il0I2NfqKqPj7IoSZKkSbLRk/qTnAQcBVwJXAUclWSjN4aVJEnScIYZIXsq8Bv9eV4kWQpcPdKqJEmSJsgw9yFbCSwamN+1b5MkSdIWMMwI2bbANUku6ecfCyxPcg5AVR04quIkSZImwTCB7PUjr0KSJGmCbTSQVdUFAEkeMLj+xm4MK0mSpOFsNJAlWQK8AbiN7qHiYYgbw0qSJGk4wxyyfDXwyKr67qiLkSRJmkTDXGX5DbrnS0qSJGkE0t9ebMMrJI8BPghcDNy+tr2qXjra0jZuattta/k++wy17vJv3DziagQwtcdOrUvQDHTp6q+2LmHO23vhY1qXoBlo9Te+17qEOW/hHg8cet1ccMGKqppa37JhDlm+D/gc3Z367xx6r5IkSRrKMIHs3lX1ypFXsike8QhYtmyoVV/06g+NthYBsOLEw1qXoBnomHft17qEOe9LxyxrXYJmoI+96pOtS5jzXvK2Zw2/crLBRcOcQ/bpJEuS7Jxkh7Wv4fcuSZKk6QwzQnZo//W4gTZveyFJkrSFDHNj2MXjKESSJGlSDTNCRpJHAnsB91vbVlWelCVJkrQFDHOn/uOBJ9MFsnOBZwBfBAxkkiRJW8AwJ/U/B9gfuKmqjgAeBWw30qokSZImyDCB7L+r6k7gjv4B47cAu462LEmSpMkxzDlky5PMB94PrAB+Anx5lEVJkiRNkmGusnxxP/neJP8GPKCqrhhtWZIkSZNjg4EsyW7AD6vqR/38U4CDgW8lubaqfjaeEiVJkua26c4hOwu4P0CSRwMfAb5Nd1L/SSOvTJIkaUJMd8hy66r6z376+cCpVfW2JPcCLht5ZZIkSRNiuhGywSdgPhU4H6C/4lKSJElbyHQjZJ9LchZwI7A98DmAJDsDnj8mSZK0hUwXyF4O/BmwM/DEqvp53/5g4H+OuC5JkqSJscFAVlUFnLme9q+OtCJJkqQJM8yd+iVJkjRCBjJJkqTGNhjIkpzff33Llt5pklckuTrJVUnOSHK/JIuTXJxkZZIPJ7nPlt6vJEnSTDTdCNnOSX4HODDJY5LsPfja1B0mWQi8FJiqqkcCWwGHAG8B3l5VDwN+ABy5qfuQJEmaTaa7yvL1wN8CuwD/sM6yors32ebsd+skPwe2obu1xlOBP++XLwX+DnjPZuxDkiRpVpjuKsuzgbOT/G1VvXFL7bCqVid5K91jmP4bOA9YQffczDv61VYBC9f3/iRLgCUAixYt2lJlSZIkNbPRk/qr6o1JDkzy1v71R5uzwyTbAwcBi4GH0D0v84Bh319VJ1fVVFVNLViwYHNKkSRJmhE2GsiS/D3wMuBr/etlSd68Gfv8feCbVbWmv9nsR4H9gPlJ1o7Y7QKs3ox9SJIkzRrD3PbiD4E/qKpTq+pUutGszRkl+zawb5JtkgTYny7ofR54Tr/O4cAnNmMfkiRJs8aw9yGbPzC93ebssKouBs4GLgWu7Gs4GXgt8MokK4EHAqdszn4kSZJmi+muslzr74GvJvk8EOBJwLGbs9OqOh44fp3m64HHbc52JUmSZqONBrKqOiPJMuCxfdNrq+qmkVYlSZI0QYYZIaOqbgTOGXEtkiRJE8lnWUqSJDVmIJMkSWps2kCWZKsk146rGEmSpEk0bSCrql8A1yXxGUWSJEkjMsxJ/dsDVye5BPivtY1VdeDIqpIkSZogwwSyvx15FZIkSRNsmPuQXZBkN2DPqvr3JNsAW42+NEmSpMkwzMPF/wfdo47e1zctBD4+wpokSZImyjC3vTga2A+4FaCqvg48aJRFSZIkTZJhAtntVfWztTNJ5gE1upIkSZImyzCB7IIkrwO2TvIHwEeAT462LEmSpMkxTCA7FlgDXAm8CDgX+JtRFiVJkjRJhrnK8s4kS4GL6Q5VXldVHrKUJEnaQjYayJL8IfBe4BtAgMVJXlRVnx51cZIkSZNgmBvDvg14SlWtBEiyB/CvgIFMkiRpCxjmHLIfrw1jveuBH4+oHkmSpImzwRGyJM/uJ5cnORc4i+4csj8FvjKG2iRJkibCdIcsnzUwfTPwe/30GmDrkVUkrce33/BbrUuY8xa9/srWJUjSxNpgIKuqI8ZZiCRJ0qQa5irLxcAxwO6D61fVgaMrS5IkaXIMc5Xlx4FT6O7Of+dIq5EkSZpAwwSy26rqnSOvRJIkaUINE8jekeR44Dzg9rWNVXXpyKqSJEmaIMMEst8CXgA8lbsOWVY/L0mSpM00TCD7U+ChVfWzURcjSZI0iYa5U/9VwPwR1yFJkjSxhhkhmw9cm+Qr/Oo5ZN72QpIkaQsYJpAdP/IqJEmSJthGA1lVXTCOQiRJkibVRs8hS/LjJLf2r9uS/CLJrZuz0yTzk5yd5Nok1yR5QpIdknw2ydf7r9tvzj4kSZJmi1TV8CsnAQ4C9q2qYzd5p8lS4AtV9YEk9wG2AV4HfL+qTkhyLLB9Vb12uu1su+1U7bPP8qH2ueIbN21quboH9tnjwSPZ7u3f+spItqu73He3x45s219d7W0LR+0xC/duXYJmoNXf+G7rEua8hXvsOPS6F1yQFVU1tb5lw1xl+UvV+Tjw9HvyvkFJtgOeRPc4JqrqZ1X1Q7qgt7RfbSlw8KbuQ5IkaTYZ5uHizx6YvRcwBdy2GftcDKwBPpjkUcAK4GXATlV1Y7/OTcBOG9vQIx4By5YNt9N9Xn3eptSqe2jZiYeNZLvffsMLR7Jd3WXR668c2bb3e9cxI9u2OsuO+VLrEjQDvftVX25dwpz3krc9a+h1kw0vG+Yqy8E93QHcQDeatanmAXsDx1TVxUneAfzK4c+qqiTrPZaaZAmwBGDRokWbUYYkSdLMMMxVlkds4X2uAlZV1cX9/Nl0gezmJDtX1Y1JdgZu2UA9JwMnA0xNTQ1/ApwkSdIMtcFAluT107yvquqNm7LDqropyXeSPKKqrgP2B77Wvw4HTui/fmJTti9JkjTbTDdC9l/rabs/cCTwQGCTAlnvGOD0/grL64Ej6M5POyvJkcC3gOduxvYlSZJmjQ0Gsqp629rpJNvSnXh/BHAm8LYNvW8YVXUZ3cUB69p/c7YrSZI0G017DlmSHYBXAs+juxXF3lX1g3EUJkmSNCmmO4fsRODZdCfQ/1ZV/WRsVUmSJE2Q6W4M+yrgIcDfAP858PikH2/uo5MkSZJ0l+nOIbtHd/GXJM09Fzzp91qXMOf93oUXtC5BM4ChS5IkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY01C2RJtkry1SSf6ucXJ7k4ycokH05yn1a1SZIkjVPLEbKXAdcMzL8FeHtVPQz4AXBkk6okSZLGrEkgS7IL8IfAB/r5AE8Fzu5XWQoc3KI2SZKkcWs1QvaPwGuAO/v5BwI/rKo7+vlVwMIGdUmSJI3d2ANZkj8CbqmqFZv4/iVJlidZvmbNmi1cnSRJ0vi1GCHbDzgwyQ3AmXSHKt8BzE8yr19nF2D1+t5cVSdX1VRVTS1YsGAc9UqSJI3U2ANZVR1XVbtU1e7AIcDnqup5wOeB5/SrHQ58Yty1SZIktTCT7kP2WuCVSVbSnVN2SuN6JEmSxmLexlcZnapaBizrp68HHteyHkmSpBZm0giZJEnSRDKQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMbGHsiS7Jrk80m+luTqJC/r23dI8tkkX++/bj/u2iRJklpoMUJ2B/CqqtoL2Bc4OslewLHA+VW1J3B+Py9JkjTnjT2QVdWNVXVpP/1j4BpgIXAQsLRfbSlw8LhrkyRJaqHpOWRJdgceA1wM7FRVN/aLbgJ2alWXJEnSODULZEl+DfgX4OVVdevgsqoqoDbwviVJlidZvmbNmjFUKkmSNFpNAlmSe9OFsdOr6qN9881Jdu6X7wzcsr73VtXJVTVVVVMLFiwYT8GSJEkj1OIqywCnANdU1T8MLDoHOLyfPhz4xLhrkyRJamFeg33uB7wAuDLJZX3b64ATgLOSHAl8C3hug9okSZLGbuyBrKq+CGQDi/cfZy2SJEkzgXfqlyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDVmIJMkSWrMQCZJktSYgUySJKkxA5kkSVJjBjJJkqTGDGSSJEmNGcgkSZIaM5BJkiQ1ZiCTJElqzEAmSZLUmIFMkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1JiBTJIkqTEDmSRJUmMGMkmSpMYMZJIkSY0ZyCRJkhozkEmSJDU24wJZkgOSXJdkZZJjW9cjSZI0ajMqkCXZCvgn4BnAXsChSfZqW5UkSdJozahABjwOWFlV11fVz4AzgYMa1yRJkjRSMy2QLQS+MzC/qm+TJEmas1JVrWv4pSTPAQ6oqr/s518APL6qXjKwzhJgST/7COC6sRc6PjsC321dhDaZ/Td72Xezm/03e831vtutqhasb8G8cVeyEauBXQfmd+nbfqmqTgZOHmdRrSRZXlVTrevQprH/Zi/7bnaz/2avSe67mXbI8ivAnkkWJ7kPcAhwTuOaJEmSRmpGjZBV1R1JXgJ8BtgKOLWqrm5cliRJ0kjNqEAGUFXnAue2rmOGmIhDs3OY/Td72Xezm/03e01s382ok/olSZIm0Uw7h0ySJGniGMgkSZIaM5DNEEnmJ3nxwPxDkpw9hv0uTnJx/+zQD/dXt+oeaNh3L+n7rZLsOOr9zVUN++/0/rm9VyU5Ncm9R73PuaZh352S5PIkVyQ5O8mvjXqfs12So5Ic1k//RZKHDCz7wKgfk5jOO/t/M69Isvco97cpPIdshkiyO/CpqnrkmPd7FvDRqjozyXuBy6vqPeOsYbZr2HePAX4ALAOmqmou30xxZBr23zOBT/ez/wxc6O/ePdOw7x5QVbf20/8A3FJVJ4yzhtksyTLgr6tq+Rj3+UzgGOCZwOOBd1TV48e1/2E4QjakJLsnuSbJ+5NcneS8JFsn2SPJvyVZkeQLSX69X3+PJBcluTLJ/07yk77915Kcn+TSftnaZ3WeAOyR5LIkJ/b7u6p/z0VJfnOglmVJppLcv//L+pIkXx3Y1vrq3yrJW/u/xq9IckySAE8F1v5FuRQ4eIt/8xqbi30HUFVfraobRvRtmzHmcP+dWz3gErobYc8pc7jv1oaxAFsDc3pko/++XptuVPeadKOC2yTZv/8eXtl/T+/br39Ckq/137O39m1/l+Sv0z2RZwo4ve+3rQf65qgkJw7s9y+SvLuffn7fZ5cleV+Sraap94D+Z+XyJOf3zQcBH+p/5S4C5ifZeUTfsk1TVb6GeAG7A3cAj+7nzwKeD5wP7Nm3PR74XD/9KeDQfvoo4Cf99DzgAf30jsBKIP32r1pnf1f1068A/lc/vTNwXT/9ZuD5/fR84D+A+2+g/r+iC17z+vkd1u5/YJ1dB2uYK6+52HfrLL8B2LH199n+2+T+uzdwKfC7rb/X9t3wfQd8ELgZ+DywTevv9Rj6sYD9+vlTgb+he/b0w/u2DwEvBx5I90jDtUfg5vdf/45uVAzuGtVncB5YwK/+n/Rp4InAbwCfBO7dt58EHLaBWhf0dS0e7LP+Z+uJA+udP1jDTHg5QnbPfLOqLuunV9D9kP4O8JEklwHvo/vFB3gC8JF++p8HthHgzUmuAP6d7uHpO21kv2cBz+mnn8tdI1pPA47t970MuB+waAPb+H3gfVV1B0BVfX8j+5xr7LvZbS7330l0hyu/sJFaZqs52XdVdQTwEOAa4M82Ustc8J2q+lI//f+A/en69j/6tqXAk4AfAbcBpyR5NvDTYXdQVWuA65Psm+SBwK8DX+r3tQ/wlb7f9gceuoHN7Ev3+/TNfpuz5t/LGXdj2Bnu9oHpX9D9g/DDqnr0PdjG8+gS/D5V9fMkN9D9g7BBVbU6yfeS/DbdL/5R/aIAf1JVm/qA9e/RDdvO6//BuduzQ+eQudZ3k2ZO9l+S4/uaXrQ525nh5mTf9fv4RZIzgdfQjZjNZeselv0h3WjYr67UPXHncXSh6TnAS+hOjRnWmXQB+lrgY1VV/aHhpVV13KYU3tvos7Jbc4Rs89wKfDPJn8Ivr+J4VL/sIuBP+ulDBt6zHd0JoD9P8hRgt779x8C20+zrw3S/9NtV1RV922eAteeCrT3Je0M+C7woybx+3R2qG7f9PHf9FXk48InpPvAcMqv7bpgPOMfN+v5L8pfA0+kO0d25sQ88h8zqvuvrfdja2oED6cLDXLcoyRP66T8HlgO7r/1eAC8ALkh3xel21T115xXAo+6+qWn77WN053sdShfOoDu8+JwkD4Jf9sNuG3j/RcCTkixeu27ffg5wWN9/+wI/qqobN/qpx8hAtvmeBxyZ5HLgarofJOiOpb+yH2J/GN0wLsDpwFSSK4HD6H+Rq+p7wJfSnTx6Ind3Nt0/UGcNtL2R7vyTK5Jc3c9vyAeAb/frXk73CwXw2r7OlXR/7Zwy7AefA2Z13yV5aZJVdH/pXZHkA/fkw88Bs7r/gPfSjRZ9Od2Jyq8f+pPPfrO57wIs7Wu5ku5w6xvuwWefra4Djk5yDbA98HbgCLpDz1cCd9L9TG8LfKrvwy8Cr1zPtk4D3tv/3G89uKCqfkB3GHi3qrqkb/sa3Tlr5/Xb/Sx3HeZmnfevAZYAH+377MP9onOB6+nOP3w/8OL1vb8lb3sxIkm2Af67H249hO6v4A1ezaOZw76b3ey/2cu+m5nS6PYik8ZzyEZnH+Dd/ZD2D4EXti1H94B9N7vZf7OXfaeJ5QjZHJPk6cBb1mn+ZlX9cYt6NDz7bnaz/2Yv+252SnIxcN91ml9QVVe2qGdzGcgkSZIa86R+SZKkxgxkkiRJjRnIJE2EJA9OcmaSb6R7huK5SR6e/tmHktSSV1lKmvP6q/Y+Rne370P6tkex8cfvSNJYOEImaRI8Bfh5Vb13bUNVXU73EGKgu9dSki8kubR//U7fvnOSC/ubWF6V5HeTbJXktH7+yiSvGP9HkjSXOEImaRI8ku7B1tO5BfiDqrotyZ7AGcAU3d3ZP1NVb0qyFbAN8Ghg4dobZSaZP6rCJU0GA5kkde5Nd1PSR9M9BPvhfftXgFOT3Bv4eFVdluR64KFJ3gX8K3Bei4IlzR0espQ0Ca6muwv8dF4B3Ez3MOQp4D4AVXUh8CRgNXBaksP65+09ClgGHEX3zENJ2mQGMkmT4HPAfZMsWduQ5LeBXQfW2Q64saruBF4AbNWvtxtwc1W9ny547Z1kR+BeVfUvdA893ns8H0PSXOUhS0lzXv+w6j8G/jHJa4HbgBuAlw+sdhLwL0kOA/4N+K++/cnAq5P8HPgJcBiwEPhgkrV/1B436s8gaW7z0UmSJEmNechSkiSpMQOZJElSYwYySZKkxgxkkiRJjRnIJEmSGjOQSZIkNWYgkyRJasxAJkmS1Nj/B1dk+ngYQHJFAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.934640522875817\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.934640522875817\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.934640522875817\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8298969072164949\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.845360824742268\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.8134715025906736\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9346405228758169\n",
      "Average Accuracy CDSMOTE DB: 0.8295764115164789\n",
      "yeast-2_vs_4_libsvm.txt\n",
      "Dataset: yeast-2_vs_4_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative                463\n",
      "1  positive                 51\n",
      "Total samples: 514\n",
      "Imbalance Ratio (IR): 9.07843137254902\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                206\n",
      "1  negative_c1                201\n",
      "2  negative_c2                 52\n",
      "3  negative_c3                  4\n",
      "4  positive_c0                 51\n",
      "Total samples: 514\n",
      "Average number of samples per class: 102.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                206\n",
      "1  negative_c1                201\n",
      "2  negative_c2                 52\n",
      "3  negative_c3                  4\n",
      "4  positive_c0                201\n",
      "Total samples: 664\n",
      "New average number of samples per class: 80.4\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9302325581395349\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.935672514619883\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9473684210526315\n",
      "赵凌云 0.6240839588467061 0.6950031625553447 0.5539130434782609\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9279279279279279\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9683257918552036\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.918552036199095\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.937757831270683\n",
      "Average Accuracy CDSMOTE DB: 0.9382685853274088\n",
      "yeast3_libsvm.txt\n",
      "Dataset: yeast3_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               1321\n",
      "1  positive                163\n",
      "Total samples: 1484\n",
      "Imbalance Ratio (IR): 8.104294478527608\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                234\n",
      "1  negative_c1                812\n",
      "2  negative_c2                262\n",
      "3  negative_c3                 13\n",
      "4  positive_c0                163\n",
      "Total samples: 1484\n",
      "Average number of samples per class: 296.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                234\n",
      "1  negative_c1                812\n",
      "2  negative_c2                262\n",
      "3  negative_c3                 13\n",
      "4  positive_c0                812\n",
      "Total samples: 2133\n",
      "New average number of samples per class: 324.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9212121212121213\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9313131313131313\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9271255060728745\n",
      "赵凌云 0.6043411500130601 0.6816252090061613 0.5228354978354979\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.939521800281294\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9310829817158931\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.939521800281294\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9265502528660424\n",
      "Average Accuracy CDSMOTE DB: 0.9367088607594937\n",
      "yeast4_libsvm.txt\n",
      "Dataset: yeast4_libsvm.txt\n",
      "      Class  Number of Samples\n",
      "0  negative               1433\n",
      "1  positive                 51\n",
      "Total samples: 1484\n",
      "Imbalance Ratio (IR): 28.098039215686274\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Class decomposition by applying k-means...\n",
      "Number of clusters for class negative: 4\n",
      "No clustering performed for class positive.\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                879\n",
      "1  negative_c1                300\n",
      "2  negative_c2                241\n",
      "3  negative_c3                 13\n",
      "4  positive_c0                 51\n",
      "Total samples: 1484\n",
      "Average number of samples per class: 296.8\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Oversampling original minority class...\n",
      "         Class  Number of Samples\n",
      "0  negative_c0                879\n",
      "1  negative_c1                300\n",
      "2  negative_c2                241\n",
      "3  negative_c3                 13\n",
      "4  positive_c0                300\n",
      "Total samples: 1733\n",
      "New average number of samples per class: 120.0\n",
      "\n",
      "Showing class distribution bar chart...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Experiment 1 Original DB...\n",
      "Accuracy Original DB: 0.9656565656565657\n",
      "\n",
      "Experiment 2 Original DB...\n",
      "Accuracy Original DB: 0.9656565656565657\n",
      "\n",
      "Experiment 3 Original DB...\n",
      "Accuracy Original DB: 0.9655870445344129\n",
      "赵凌云 0.0 0.5 0.0\n",
      "\n",
      "Experiment 1 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9290657439446367\n",
      "\n",
      "Experiment 2 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9273356401384083\n",
      "\n",
      "Experiment 3 CDSMOTE DB...\n",
      "Accuracy CDSMOTE DB: 0.9168110918544194\n",
      "\n",
      "Final Results:\n",
      "Average Accuracy Original DB: 0.9656333919491814\n",
      "Average Accuracy CDSMOTE DB: 0.9244041586458215\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "import clustData\n",
    "import computeKVs\n",
    "import numpy as np\n",
    "import csv\n",
    "import math\n",
    "import random\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "from imblearn.over_sampling import SMOTE\n",
    "from imblearn.over_sampling import ADASYN\n",
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "from sklearn.model_selection import KFold,StratifiedKFold\n",
    "from sklearn import svm\n",
    "from sklearn.datasets import load_svmlight_file\n",
    "import os\n",
    "from os import listdir\n",
    "\n",
    "# 结果是gm，auc，f1\n",
    "\n",
    "# 加载数据集\n",
    "def loadfile(filename):\n",
    "    X_train, y_train = load_svmlight_file(filename)\n",
    "    x = X_train.todense()\n",
    "    y_train = y_train.astype(np.int)\n",
    "    return np.array(x), np.array(y_train)\n",
    "# 存放数据集的位置\n",
    "data_all = \"0223-minmax\"\n",
    "# 存放结果的txt\n",
    "res_zly = \"res_0223-rbf.txt\"\n",
    "# 需要几折否交叉验证，1表示要，0表示不要，注意设置，否则出现问题\n",
    "k_fold_zly = 1\n",
    "# 下面的设置二选一\n",
    "# test的比例\n",
    "test_account_ = 0.3\n",
    "#交叉验证需要设置\n",
    "# 表示几折\n",
    "n_k = 3\n",
    "\n",
    "dir_cont = listdir(data_all)\n",
    "print(dir_cont)\n",
    "# dir_cont = [\"shuttle-c0-vs-c4.txt\"]\n",
    "for dataset in dir_cont:\n",
    "    f = open(res_zly,\"a+\",encoding= \"utf-8\")\n",
    "    print(dataset)\n",
    "    data,y = loadfile('{}//'.format(data_all)+str(dataset))\n",
    "    data = list(data)\n",
    "    target = []\n",
    "    for i in y:\n",
    "        if i == 1:\n",
    "            target.append(\"positive\")\n",
    "        if i == -1:\n",
    "            target.append(\"negative\")\n",
    "    majority_class = max(set(target), key=target.count)\n",
    "    minority_class = min(set(target), key=target.count)\n",
    "\n",
    "\n",
    "    classdecomp = 'Kmeans' # 'FCmeans', 'FCmeansOptimised' and 'DBSCAN' also available \n",
    "    oversampler = 'SMOTE' #'ADASYN' also available\n",
    "    threshold = 10 # if samples in positive class are apart from average by more than this value, apply oversampling (Sec 3.2 paper)\n",
    "    k_type = 'fixed' # Indicates how to calculate k values for class decomposition\n",
    "    n_clusters = 4 # used in the \"fixed\" k_type option\n",
    "    number_of_tests = 5 # How many times to repeat the SVM experiment comparing the original and new db\n",
    "\n",
    "    # 1. Load dataset\n",
    "    # with open('data//'+str(dataset)+'.csv', 'r', newline='', encoding='utf-8') as f:\n",
    "    #     reader = csv.reader(f)\n",
    "    #     data = []\n",
    "    #     target = []\n",
    "    #     for row in reader:\n",
    "    #         data.append(list(map(float,row[0:len(row)-1])))\n",
    "    #         target.append(row[-1])\n",
    "    # del row, reader, f\n",
    "\n",
    "    \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "    %matplotlib inline\n",
    "    ## 3. Plot distribution of original dataset\n",
    "    print('Dataset: '+str(dataset))\n",
    "    histo = [['Class','Number of Samples']]\n",
    "    for i, label1 in enumerate(sorted(list(set(target)))):\n",
    "        cont = 0\n",
    "        for j, label2 in enumerate(target):\n",
    "            if label1 == label2:\n",
    "                cont+=1\n",
    "        histo.append([label1,cont])\n",
    "    histo.append(['Total Samples', len(target)])\n",
    "    ## Save the histogram as a .csv file   \n",
    "    with open('results/originaldb_classdistribution.csv', 'w', newline='', encoding='utf-8') as csvfile:\n",
    "        filewriter = csv.writer(csvfile, delimiter=',')\n",
    "        for i, hist in enumerate(histo):\n",
    "            filewriter.writerow(hist)\n",
    "    ## Load as a panda\n",
    "    histo_panda = pd.DataFrame.from_records(histo[1:-1], columns=histo[0])\n",
    "    print(histo_panda)\n",
    "    print('Total samples: '+str(len(target)))\n",
    "    ## Find IR\n",
    "    majority_samples = histo_panda.loc[histo_panda['Class'] == majority_class].reset_index()\n",
    "    minority_samples = histo_panda.loc[histo_panda['Class'] == minority_class].reset_index()\n",
    "    IR = majority_samples['Number of Samples'][0]/minority_samples['Number of Samples'][0]\n",
    "    print('Imbalance Ratio (IR): '+str(IR))\n",
    "    ## Create a histogram using seaborn\n",
    "\n",
    "    sns_plot = sns.barplot(x=\"Class\", y=\"Number of Samples\", data=histo_panda)\n",
    "    ## Save the image\n",
    "    sns_plot.figure.set_size_inches(10, 6)\n",
    "    sns_plot.figure.savefig('results/originaldb_barchart'+'.jpg', orientation = 'landscape', dpi = 600)\n",
    "    print('\\nShowing class distribution bar chart...')\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "    ## 1.  Calculate k vector (for class decomposition)\n",
    "    if k_type.lower() == 'fixed':\n",
    "        k = computeKVs.majority(data, target, n_clusters)\n",
    "    elif k_type.lower() == 'ir':\n",
    "        ## Calculate the IR between the majority and the minority\n",
    "        n_clusters = math.ceil(IR) \n",
    "        k = computeKVs.majority(data, target, n_clusters)\n",
    "    else:\n",
    "        print('Invalid option for k_type')\n",
    "        sys.exit()\n",
    "\n",
    "    ## 2. Cluster the data\n",
    "    if classdecomp.lower()=='kmeans':\n",
    "        target_cd = clustData.Kmeans(data, target, k)\n",
    "    elif classdecomp.lower()=='fcmeans':\n",
    "        target_cd = clustData.FCmeans(data, target, k)\n",
    "    elif classdecomp.lower()=='fcmeansoptimised':\n",
    "         target_cd = clustData.FCmeansOptimised(data, target, k, max_nclusters = 10)   \n",
    "    elif classdecomp.lower()=='dbscan':        \n",
    "         target_cd = clustData.DBSCAN(data, target, k, eps=0.5, min_samples=5)\n",
    "    else:\n",
    "        print('Invalid class decomposition algorithm.')\n",
    "        sys.exit()\n",
    "\n",
    "\n",
    "    histo = [['Class','Number of Samples']]\n",
    "    for i, label1 in enumerate(sorted(list(set(target_cd)))):\n",
    "        cont = 0\n",
    "        for j, label2 in enumerate(target_cd):\n",
    "            if label1 == label2:\n",
    "                cont+=1\n",
    "        histo.append([label1,cont])\n",
    "    histo.append(['Total Samples', len(target_cd)])\n",
    "    ## Save the histogram as a .csv file   \n",
    "    with open('results/decomposeddb_classdistribution.csv', 'w', newline='', encoding='utf-8') as csvfile:\n",
    "        filewriter = csv.writer(csvfile, delimiter=',')\n",
    "        for i, hist in enumerate(histo):\n",
    "            filewriter.writerow(hist)\n",
    "    ## Load as a panda\n",
    "    histo_panda = pd.DataFrame.from_records(histo[1:-1], columns=histo[0])\n",
    "    print(histo_panda)\n",
    "    print('Total samples: '+str(len(target_cd)))\n",
    "    ## Create a histogram using seaborn\n",
    "    sns_plot = sns.barplot(x=\"Class\", y=\"Number of Samples\", data=histo_panda)\n",
    "    ## draw a line depicting the average\n",
    "    indexesUnique = list(set(target_cd))\n",
    "    indexesUnique.sort()\n",
    "    cdclassdist_count = []\n",
    "    cdclassdist_names = []\n",
    "    for cdclass in indexesUnique:\n",
    "         cdclassdist_count.append(target_cd.count(cdclass))\n",
    "         cdclassdist_names.append(cdclass)\n",
    "    average = sum(cdclassdist_count)/len(cdclassdist_count)\n",
    "    print('Average number of samples per class:', average)\n",
    "    plt.axhline(average, color='red')\n",
    "    ## Save the image\n",
    "    sns_plot.figure.set_size_inches(10, 6)\n",
    "    sns_plot.figure.savefig('results/decomposeddb_barchart'+'.jpg', orientation = 'landscape', dpi = 600)\n",
    "    print('\\nShowing class distribution bar chart...')\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "    ## 1. See if the minority is far from the average (larger than the threshold)\n",
    "    flag = 0\n",
    "    for i,cdclassdist_name in enumerate(cdclassdist_names):\n",
    "        if minority_class == cdclassdist_name.split('_')[0]:\n",
    "            if abs(average-cdclassdist_count[i])>threshold and average>cdclassdist_count[i]:\n",
    "                flag = 1\n",
    "                newmin = cdclassdist_name\n",
    "    if flag ==1:            \n",
    "        print('Oversampling original minority class...')\n",
    "        ## 2. Calculate new majority class (closest to the average and larger than the minority) to use as reference for the oversampling\n",
    "        c = np.inf\n",
    "        newmaj = majority_class + '_c0' # gets picked by default if none other accomplishes\n",
    "        for i,j in enumerate(cdclassdist_count):\n",
    "            if abs(j-average)<c and j>average:\n",
    "                c = abs(j-average)\n",
    "                newmaj = cdclassdist_names[i]\n",
    "        ## 3. Create the dataset that only contains the new majority and minority classes\n",
    "        data_majmin = []\n",
    "        target_majmin = []\n",
    "        for m, label in enumerate(target_cd):\n",
    "            if label == newmaj or label == newmin:\n",
    "                data_majmin.append(data[m])\n",
    "                target_majmin.append(label)\n",
    "        if oversampler.lower() == 'smote':\n",
    "            sm = SMOTE()\n",
    "            data_over, target_over = sm.fit_resample(data_majmin, target_majmin) \n",
    "        elif oversampler.lower() == 'adasyn':\n",
    "            ada = ADASYN()\n",
    "            data_over, target_over = ada.fit_resample(data_majmin, target_majmin)\n",
    "        else:\n",
    "            print('Invalid oversampling algorithm.')\n",
    "            sys.exit() \n",
    "        ## 4. combine this with the remaning classes\n",
    "        data_cdsmote = data_over.copy()\n",
    "        target_cdsmote = target_over.copy()\n",
    "        for m, label in enumerate(target_cd):\n",
    "            if label != newmin and label != newmaj:\n",
    "                data_cdsmote.append(data[m])\n",
    "                target_cdsmote.append(label)\n",
    "\n",
    "\n",
    "        ## 5. Plot distribution after smote\n",
    "        histo = [['Class','Number of Samples']]\n",
    "        for i, label1 in enumerate(sorted(list(set(target_cdsmote)))):\n",
    "            cont = 0\n",
    "            for j, label2 in enumerate(target_cdsmote):\n",
    "                if label1 == label2:\n",
    "                    cont+=1\n",
    "            histo.append([label1,cont])\n",
    "        histo.append(['Total Samples', len(target_cdsmote)])\n",
    "        ## Save the histogram as a .csv file   \n",
    "        with open('results/cdsmotedb_classdistribution.csv', 'w', newline='', encoding='utf-8') as csvfile:\n",
    "            filewriter = csv.writer(csvfile, delimiter=',')\n",
    "            for i, hist in enumerate(histo):\n",
    "                filewriter.writerow(hist)\n",
    "        ## Load as a panda\n",
    "        histo_panda = pd.DataFrame.from_records(histo[1:-1], columns=histo[0])\n",
    "        print(histo_panda)\n",
    "        print('Total samples: '+str(len(target_cdsmote)))\n",
    "        ## Create a histogram using seaborn\n",
    "        sns_plot = sns.barplot(x=\"Class\", y=\"Number of Samples\", data=histo_panda)\n",
    "        ## draw a line depicting the average\n",
    "        indexesUnique = list(set(target_cdsmote))\n",
    "        indexesUnique.sort()\n",
    "        newestclassdist_count = []\n",
    "        for newestclass in indexesUnique:\n",
    "             newestclassdist_count.append(target_over.count(newestclass))\n",
    "        average_new = sum(newestclassdist_count)/len(newestclassdist_count)\n",
    "        print('New average number of samples per class:', average_new)\n",
    "        plt.axhline(average, color='red')\n",
    "        plt.axhline(average_new, color='blue')\n",
    "        ## Save the image\n",
    "        sns_plot.figure.set_size_inches(10, 6)\n",
    "        sns_plot.figure.savefig('results/cdsmotedb_barchart'+'.jpg', orientation = 'landscape', dpi = 600)\n",
    "        print('\\nShowing class distribution bar chart...')\n",
    "        plt.show()\n",
    "\n",
    "    else:\n",
    "        data_cdsmote = data.copy()\n",
    "        target_cdsmote = target_cd.copy()\n",
    "        print('Original minority class is close to average. No oversampling needed.')\n",
    "\n",
    "\n",
    "    ## Save the new dataset\n",
    "    with open('results/cdsmotedb.csv', 'w', newline='') as csvfile:\n",
    "        filewriter = csv.writer(csvfile, delimiter=',')\n",
    "        for j, tar in enumerate(target_cdsmote):\n",
    "            row = data_cdsmote[j].copy()\n",
    "            row = list(row)\n",
    "            row.append(target_cdsmote[j])\n",
    "            row = np.array(row)\n",
    "            filewriter.writerow(row)\n",
    "\n",
    "\n",
    "    target01 = []\n",
    "    for i in target:\n",
    "        if i == \"positive\":\n",
    "            target01.append(1)\n",
    "        if i == \"negative\":\n",
    "            target01.append(-1)\n",
    "\n",
    "    target_cdsmote01 = []\n",
    "    for  i in target_cdsmote:\n",
    "        if i[:8] == \"positive\":\n",
    "            target_cdsmote01.append(1)\n",
    "        if i[:8] == \"negative\":\n",
    "            target_cdsmote01.append(-1)\n",
    "\n",
    "\n",
    "    from imblearn.metrics import geometric_mean_score as G_means\n",
    "    from sklearn.metrics import roc_auc_score as AUC\n",
    "    from sklearn.metrics import f1_score\n",
    "    accuracy_o_final = 0\n",
    "    accuracy_c_final = 0\n",
    "    ave_gm = 0\n",
    "    ave_auc = 0\n",
    "    ave_f1 = 0\n",
    "    ## Split data/target and data_cdsmote/target_cdsmote (stratified and with many splits)\n",
    "    sss = 0\n",
    "    if k_fold_zly == 1:\n",
    "        # 使用交叉验证代码\n",
    "        sss = StratifiedKFold(n_splits=n_k, shuffle=True, random_state=random.randint(0,10000))\n",
    "    else:\n",
    "    #     使用随机划分的代码\n",
    "        sss = StratifiedShuffleSplit(n_splits=number_of_tests, test_size=test_account_, random_state=42)\n",
    "\n",
    "    \n",
    "    # Original data\n",
    "    experiments = 0\n",
    "    target = target01\n",
    "\n",
    "    for train_index, test_index in sss.split(data, target):\n",
    "        print('\\nExperiment '+str(experiments+1)+' Original DB...')\n",
    "        experiments+=1\n",
    "        X_train_o, X_test_o,  = np.asarray(data)[train_index], np.asarray(data)[test_index]\n",
    "        y_train_o, y_test_o = np.asarray(target)[train_index], np.asarray(target)[test_index]\n",
    "        # Train SVM models\n",
    "        clf_o = svm.SVC(kernel='linear')\n",
    "        clf_o.fit(X_train_o, y_train_o)\n",
    "        y_pred_o = clf_o.predict(X_test_o)\n",
    "\n",
    "        # Test \n",
    "        from sklearn import metrics\n",
    "        print(\"Accuracy Original DB:\",metrics.accuracy_score(y_test_o, y_pred_o))\n",
    "        accuracy_o_final = accuracy_o_final + metrics.accuracy_score(y_test_o, y_pred_o)\n",
    "        ave_gm += G_means(y_test_o, y_pred_o)\n",
    "        ave_auc += AUC(y_test_o, y_pred_o)\n",
    "        ave_f1 += f1_score(y_test_o, y_pred_o, labels =[1])\n",
    "\n",
    "    print(\"赵凌云\",ave_gm/experiments,ave_auc/experiments,ave_f1/experiments)\n",
    "    f.writelines(\"{}\\t{}\\t{}\\t{}\\t\".format(dataset,ave_gm/experiments,ave_auc/experiments,ave_f1/experiments))\n",
    "    # CDSMOTE data\n",
    "    experiments = 0\n",
    "    ave_gm = 0\n",
    "    ave_auc = 0\n",
    "    ave_f1 = 0\n",
    "    for train_index, test_index in sss.split(data_cdsmote, target_cdsmote):\n",
    "        print('\\nExperiment '+str(experiments+1)+' CDSMOTE DB...')\n",
    "        experiments+=1\n",
    "        X_train_c, X_test_c,  = np.asarray(data_cdsmote)[train_index], np.asarray(data_cdsmote)[test_index]\n",
    "        y_train_c, y_test_c = np.asarray(target_cdsmote)[train_index], np.asarray(target_cdsmote)[test_index]\n",
    "        # Train SVM models\n",
    "        clf_c = svm.SVC(kernel='linear')\n",
    "        clf_c.fit(X_train_c, y_train_c)\n",
    "        y_pred_c = clf_c.predict(X_test_c)\n",
    "        # Test, making sure accuracy considers sub_classes as good\n",
    "        accuracy_c=0\n",
    "        for i,label in enumerate(y_test_c):\n",
    "            if label.split('_')[0] == y_pred_c[i].split('_')[0]:\n",
    "               accuracy_c+=1\n",
    "\n",
    "\n",
    "    #     print(y_pred_c,y_test_c)\n",
    "        pred_c_this = []\n",
    "        for item in y_pred_c:\n",
    "            if item.split('_')[0] == \"positive\":\n",
    "                pred_c_this.append(1)\n",
    "            if item.split('_')[0] == \"negative\":\n",
    "                pred_c_this.append(-1)\n",
    "\n",
    "\n",
    "        test_c_this = []\n",
    "        for item in y_test_c:\n",
    "            if item.split('_')[0] == \"positive\":\n",
    "                test_c_this.append(1)\n",
    "            if item.split('_')[0] == \"negative\":\n",
    "                test_c_this.append(-1)\n",
    "\n",
    "#         print(pred_c_this,test_c_this)\n",
    "        print(\"Accuracy CDSMOTE DB:\",accuracy_c/len(y_pred_c))\n",
    "        accuracy_c_final = accuracy_c_final + accuracy_c/len(y_pred_c)\n",
    "        ave_gm += G_means(test_c_this, pred_c_this)\n",
    "        ave_auc += AUC(test_c_this, pred_c_this)\n",
    "        ave_f1 += f1_score(test_c_this, pred_c_this, labels =[1])\n",
    "    f.writelines(\"{}\\t{}\\t{}\\t{}\\n\".format(dataset,ave_gm/experiments,ave_auc/experiments,ave_f1/experiments))\n",
    "    f.close()\n",
    "    # Final results\n",
    "    print('\\nFinal Results:')\n",
    "    print(\"Average Accuracy Original DB:\",accuracy_o_final/experiments)\n",
    "    print(\"Average Accuracy CDSMOTE DB:\",accuracy_c_final/experiments)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "28fb005e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py36",
   "language": "python",
   "name": "py36"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
